package com.niiwoo.civet.user.dto.response;

import com.niiwoo.civet.user.enums.PortraitChannelEnum;
import com.niiwoo.civet.user.enums.UserDataStatusEnum;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.Date;

@Getter
@Setter
public class FacePlusPortraitAuthResponseDTO implements Serializable {

    private static final long serialVersionUID = 7772466989759657079L;

    // 认证渠道
    private PortraitChannelEnum portraitChannelEnum;

    // 肖像认证状态
    private UserDataStatusEnum.PortraitAuthStatus portraitAuthStatus;

    // 剩余验证次数
    private Integer remainingTimes;

    // 活体照片地址
    private String bestLiveImage;

    // 活体照片置信度
    private Double liveImageConfidence;

    // 活体照片置信度 - 配置最小值
    private Double liveImageMinConfigConfidence;

    // 活体照片置信度 - 配置最大值
    private Double liveImageMaxConfigConfidence;

    // 误识率为千分之一的置信度阈值
    private Double liveImageThreshold1e3;

    // 误识率为万分之一的置信度阈值
    private Double liveImageThreshold1e4;

    // 误识率为十万分之一的置信度阈值;
    private Double liveImageThreshold1e5;

    // 误识率为百万分之一的置信度阈值
    private Double liveImageThreshold1e6;

    //人脸照片为软件合成脸的置信度。
    private Double syntheticFaceConfidence;

    // 人脸照片为软件合成脸的置信度阈值
    private Double syntheticFaceThreshold;

    // 人脸照片为面具的置信度
    private Double maskConfidence;

    // 人脸照片为面具的置信度阈值
    private Double maskThreshold;

    // 人脸照片为屏幕翻拍的置信度
    private Double screenReplayConfidence;

    // 人脸照片为屏幕翻拍的置信度阈值
    private Double screenReplayThreshold;

    // 活体照片认证状态, 参考 FacePlusAuditStatusEnum
    private Byte liveImageAuthStatus;

    // 身份证正面照地址
    private String idImage;

    // 身份证正面照置信度
    private Double idImageConfidence;

    // 身份证正面照置信度 - 配置最小值
    private Double idImageMinConfigConfidence;

    // 身份证正面照置信度 - 配置最大值
    private Double idImageMaxConfigConfidence;

    // 误识率为千分之一的置信度阈值
    private Double idImageThreshold1e3;

    // 误识率为万分之一的置信度阈值
    private Double idImageThreshold1e4;

    // 误识率为十万分之一的置信度阈值
    private Double idImageThreshold1e5;

    // 误识率为百万分之一的置信度阈值
    private Double idImageThreshold1e6;

    // 表示检测出的一张人脸图像的质量，取值［0，100］，越高越好。
    private Double idImageQuality;

    // FaceId建议的人脸图像质量阈值，大于此阈值可以认定图像质量足够完成比对。
    private Double idImageQualityThreshold;

    // 判别身份证号码是否曾被冒用来攻击FaceID活体检测，取值1表示曾被攻击、取值0表示未被攻击。
    private Byte idCardAttacked;

    // 身份证正面照认证状态, 参考 FacePlusAuditStatusEnum
    private Byte idImageAuthStatus;

    // 创建时间
    private Date createTime;

    // 更新时间
    private Date updateTime;

    // 校验字符串
    private String delta;

    // 用于假脸判定，请传MegLive SDK返回的用作云端假脸攻击判定的照片
    private String liveEnvImage;

    // 活体认证错误码
    private String liveAuthErrorCode;

    // 活体认证错误信息
    private String liveAuthErrorMessage;

    // 身份证正面照认证错误码
    private String idAuthErrorCode;

    // 身份证正面照认证错误信息
    private String idAuthErrorMessage;

}
